PARTS := $(patsubst %/Makefile,%,$(wildcard */Makefile))

.PHONY: env recreate rebuild restart logs down deploy fmt check build pre-deploy post-deploy

env:
	@test -f .env || awk 'FNR == 1 && NR > 1 { print "" } 1' .env.example $(addsuffix /.env.example,$(PARTS)) > .env
	@for part in $(PARTS); do test -f $$part/docker-compose.override.yml || cp $$part/docker-compose.override.yml.example $$part/docker-compose.override.yml; done

recreate:
	docker compose up -d --force-recreate

rebuild: build
	docker compose up -d

restart:
	docker compose restart

logs:
	docker compose logs -f --tail=100

down:
	docker compose down

deploy: pre-deploy
	docker compose up -d
	$(MAKE) post-deploy

fmt check build pre-deploy post-deploy:
	@for part in $(PARTS); do $(MAKE) -C $$part $@ || exit 1; done
